package timbap.visualizer.api.plugin.recorditems;

import timbap.visualizer.api.model.RecordItem;
import timbap.visualizer.api.plugin.Plugin;

/**
 * The <code>RecordItemsPlugin</code> interface is the base
 * interface for all timbap plugins that control the
 * drawing of every record item separately.
 *
 * @author  Andreas Pabst
 * @see     timbap.visualizer.api.model.RecordItem
 * @see     timbap.visualizer.api.plugin.Plugin
 */
public interface RecordItemsPlugin extends Plugin {
	
	/**
	 * draws a record item
	 * 
	 * @param pRecordItem	the record item to draw
	 */
	public void drawRecordItem(RecordItem pRecordItem);
	
	/**
	 * determines whether visualization is necessary
	 * for the given record item
	 * 
	 * @param pRecordItem	the record item to check
	 * @return	true if visualization of the record item is necessary, false otherwise
	 */
	public boolean isVisualizationNecessary(RecordItem pRecordItem);

}
